<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, user-scalable=no"
    />
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      body {
        font-size: 16px;
      }

      .main {
        width: calc(100rem / 37.5);
        height: calc(100rem / 37.5);
        background-color: aquamarine;
      }
      p {
        /* 在375屏幕宽度下设置字体为14 px */
        font-size: calc(14rem / 37.5);
      }
    </style>
  </head>
  <body>
    <!-- 
    rem + html 动态 font-size来适配
   -->
    <div class="main"></div>
    <p>通过js来实现动态设置 html 的 font-size</p>
    <span>给body设置 font-size 来避免 html 的 font-size 影响</span>
    <script>
      function setRemUnit() {
        const htmlEle = document.documentElement // 获取 html 元素
        const htmlWidth = htmlEle.clientWidth // 获取设备的宽度
        const htmlFontSize = htmlWidth / 10 // 动态font-size为设备宽度的
        htmlEle.style.fontSize = htmlFontSize + "px"
      }
      setRemUnit()
      window.addEventListener("resize", setRemUnit)
      /**
        以屏幕375宽度为计算标准，在375屏幕下html的font-size 是 37.5px
        公式 rem = px / 根元素字体大小
        在屏幕375宽度下显示 100*100 的盒子，100 / 37.5 ≈ 2.6667 rem
        在屏幕375宽度下显示 125*125 的盒子，125 / 37.5 ≈ 3.333 rem
       */
    </script>
  </body>
</html>
